#  Copyright (c) 2014-present, Facebook, Inc.
#  All rights reserved.
#
#  This source code is licensed as defined on the LICENSE file found in the
#  root directory of this source tree.

load("//tools/build_defs/oss/osquery:cxx.bzl", "osquery_cxx_library", "osquery_cxx_test")
load("//tools/build_defs/oss/osquery:native.bzl", "osquery_target")
load("//tools/build_defs/oss/osquery:platforms.bzl", "POSIX")
load("//tools/build_defs/oss/osquery:third_party.bzl", "osquery_tp_target")
load("//tools/build_defs/oss/osquery:native_functions.bzl", "osquery_read_config")

osquery_cxx_library(
    name = "transports_tls",
    srcs = ["tls.cpp"],
    header_namespace = "osquery/remote/transports",
    exported_headers = ["tls.h"],
    tests = [":remote_transports_tls_tests"],
    visibility = ["PUBLIC"],
    deps = [
        osquery_target("osquery:headers"),
        osquery_target("osquery/core:core"),
        osquery_target("osquery/remote:http_client"),
        osquery_target("osquery/remote:requests"),
        osquery_target("osquery/utils/json:json"),
        osquery_tp_target("boost"),
    ],
)

osquery_cxx_test(
    name = "remote_transports_tls_tests",
    env = {
        "TEST_CONF_FILES_DIR": "$(location {})".format(
            osquery_target("tools/tests/configs:test_files"),
        ),
        "TEST_HELPER_SCRIPTS_DIR": "$(location {})".format(
            osquery_target("tools/tests:python_script_files"),
        ),
        "OSQUERY_PYTHON_INTERPRETER_PATH": osquery_read_config("python#py3", "interpreter"),
    },
    platform_srcs = [
        (
            POSIX,
            [
                "tests/tls_transports_tests.cpp",
            ],
        ),
    ],
    visibility = ["PUBLIC"],
    deps = [
        osquery_target("osquery/config/tests:test_utils"),
        osquery_target("osquery/database:database"),
        osquery_target("osquery/events:events"),
        osquery_target("osquery/extensions:extensions"),
        osquery_target("osquery/extensions:impl_thrift"),
        osquery_target("osquery/remote/enroll:tls_enroll"),
        osquery_target("osquery/remote/tests:remote_test_utils"),
        osquery_target("osquery/utils/conversions:conversions"),
        osquery_target("osquery/utils/info:info"),
        osquery_target("plugins/config:tls_config"),
        osquery_target("plugins/database:ephemeral"),
        osquery_target("tests:helper"),
    ],
)
